package com.taobao.analyse.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import com.alibaba.common.lang.StringUtil;

public class SimpleDateFormatUtils {
	private static final String defaultFormatStr = "yyyyMMddHHmmss";

	private static SimpleDateFormat defaultFormat = new SimpleDateFormat(
			defaultFormatStr);

	/**
	 * 将字符串格式的日期转换成默认的Date格式
	 * 
	 * @param dateStr
	 * @return
	 */
	public static Date convertStrToDateDefault(String dateStr) {
		if (StringUtil.isEmpty(dateStr)) {
			return null;
		}
		try {
			return defaultFormat.parse(dateStr);
		} catch (ParseException e) {
			// 转换格式出现异常，则返回空
			return null;
		}
	}

	/**
	 * 将字符串格式的日期转换成指定的Date格式
	 * 
	 * @param formatStr
	 *            指定的格式，如yyyy-MM-dd
	 * @param dateStr
	 * @return
	 */
	public static Date converStrToDateBySpecifiedFormat(String formatStr,
			String dateStr) {
		if (StringUtil.isEmpty(formatStr) || StringUtil.isEmpty(dateStr)) {
			return null;
		}
		SimpleDateFormat sdf = new SimpleDateFormat(formatStr);
		try {
			return sdf.parse(dateStr);
		} catch (ParseException e) {
			return null;
		}
	}
	
	/**
	 * 将日期转换成指定的格式
	 * @param formatStr
	 * @param d
	 * @return
	 */
	public static String converDateToStr(String formatStr,Date d){
		if (StringUtil.isEmpty(formatStr) || d==null) {
			return null;
		}
		SimpleDateFormat sdf = new SimpleDateFormat(formatStr);
		return sdf.format(d);
	}

	public static void main(String[] args) {
		String strDate = "20120830000000";
		System.out.println(SimpleDateFormatUtils
				.convertStrToDateDefault(strDate));
	}

}
